/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Principal.java
 *
 * Created on 11-feb-2012, 14:45:41
 */
package simplexml.vista;

import com.nilo.plaf.nimrod.NimRODLookAndFeel;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import simplexml.modelo.Nodo;
import simplexml.utiles.Archivos;
import simplexml.utiles.Archivoxml;
import simplexml.utiles.Eventos;
import simplexml.utiles.FiltroArchivo;
import simplexml.utiles.Mensajes;

/**
 *
 * @author Dianita
 */
public class Principal extends javax.swing.JFrame {

    /** Creates new form Principal */
    Dimension dimension;
    String nombreArchivo;

    public Principal() {
        try {
            UIManager.setLookAndFeel(new NimRODLookAndFeel());
        } catch (Exception e) {
        }

        initComponents();


        //configuracion de la pantalla
        this.dimension = Toolkit.getDefaultToolkit().getScreenSize();//obtener el tamanio de la pc
        this.setSize((int) dimension.getWidth(), (int) dimension.getHeight() - 50); // establece el tamanio de la ventwana
        this.setLocation(0, 0);
        panelImage1.setSize((int) dimension.getWidth() - 30, (int) dimension.getHeight() - 100);
        panelCurves1.setSize((int) dimension.getWidth() - 30, (int) dimension.getHeight() - 90);
        jifventanaInterna.setTitle("Nuevo Proyecto");

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jifventanaInterna = new javax.swing.JInternalFrame();
        panelImage1 = new org.edisoncor.gui.panel.PanelImage();
        panelCurves1 = new org.edisoncor.gui.panel.PanelCurves();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jScrollPane3 = new javax.swing.JScrollPane();
        jTextArea3 = new javax.swing.JTextArea();
        jScrollPane4 = new javax.swing.JScrollPane();
        jTextArea4 = new javax.swing.JTextArea();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jtasimplexml = new javax.swing.JTextArea();
        jScrollPane2 = new javax.swing.JScrollPane();
        jtaxml = new javax.swing.JTextArea();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jButton4 = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem7 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem4 = new javax.swing.JMenuItem();
        jMenuItem5 = new javax.swing.JMenuItem();
        jMenu4 = new javax.swing.JMenu();
        jMenuItem6 = new javax.swing.JMenuItem();
        jMenu3 = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        getContentPane().setLayout(new java.awt.CardLayout());

        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();//obtener el tamanio de la pc
        jifventanaInterna.setBounds(0,0,(int) d.getWidth() -50 , (int) d.getHeight() - 100);
        jifventanaInterna.setVisible(true);
        jifventanaInterna.getContentPane().setLayout(null);

        panelImage1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/simplexml/imagenes/fondo.jpg"))); // NOI18N

        panelCurves1.setLayout(null);

        jTextArea3.setColumns(20);
        jTextArea3.setEditable(false);
        jTextArea3.setRows(5);
        jScrollPane3.setViewportView(jTextArea3);

        jTabbedPane1.addTab("Salida", jScrollPane3);

        jTextArea4.setColumns(20);
        jTextArea4.setEditable(false);
        jTextArea4.setRows(5);
        jScrollPane4.setViewportView(jTextArea4);

        jTabbedPane1.addTab("Detección de Errores", jScrollPane4);

        panelCurves1.add(jTabbedPane1);
        jTabbedPane1.setBounds(120, 430, 820, 160);
        //jTabbedPane1.setBounds(100, 410, 1000, 108);

        jButton2.setFont(new java.awt.Font("Broadway", 0, 13));
        jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/simplexml/imagenes/delete_32.png"))); // NOI18N
        jButton2.setText("Salir");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        panelCurves1.add(jButton2);
        jButton2.setBounds(950, 550, 150, 45);

        jButton3.setFont(new java.awt.Font("Broadway", 0, 13));
        jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/simplexml/imagenes/right_32.png"))); // NOI18N
        jButton3.setText("Traducir");
        panelCurves1.add(jButton3);
        jButton3.setBounds(950, 450, 150, 45);

        jtasimplexml.setColumns(20);
        jtasimplexml.setRows(5);
        jtasimplexml.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jtasimplexmlKeyPressed(evt);
            }
        });
        jScrollPane1.setViewportView(jtasimplexml);

        panelCurves1.add(jScrollPane1);
        jScrollPane1.setBounds(120, 70, 470, 350);

        jtaxml.setColumns(20);
        jtaxml.setEditable(false);
        jtaxml.setRows(5);
        jScrollPane2.setViewportView(jtaxml);

        panelCurves1.add(jScrollPane2);
        jScrollPane2.setBounds(630, 70, 470, 350);

        jLabel1.setFont(new java.awt.Font("Script MT Bold", 1, 24));
        jLabel1.setForeground(new java.awt.Color(255, 255, 255));
        jLabel1.setText("Xml");
        panelCurves1.add(jLabel1);
        jLabel1.setBounds(640, 30, 140, 30);

        jLabel2.setFont(new java.awt.Font("Script MT Bold", 1, 24));
        jLabel2.setForeground(new java.awt.Color(255, 255, 255));
        jLabel2.setText("Simplexml");
        panelCurves1.add(jLabel2);
        jLabel2.setBounds(130, 30, 140, 30);

        jButton4.setFont(new java.awt.Font("Broadway", 0, 13));
        jButton4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/simplexml/imagenes/save_32.png"))); // NOI18N
        jButton4.setText("Guardar");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });
        panelCurves1.add(jButton4);
        jButton4.setBounds(950, 500, 150, 45);

        javax.swing.GroupLayout panelImage1Layout = new javax.swing.GroupLayout(panelImage1);
        panelImage1.setLayout(panelImage1Layout);
        panelImage1Layout.setHorizontalGroup(
            panelImage1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(panelCurves1, javax.swing.GroupLayout.DEFAULT_SIZE, 1240, Short.MAX_VALUE)
        );
        panelImage1Layout.setVerticalGroup(
            panelImage1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(panelCurves1, javax.swing.GroupLayout.DEFAULT_SIZE, 650, Short.MAX_VALUE)
        );

        jifventanaInterna.getContentPane().add(panelImage1);
        panelImage1.setBounds(0, 0, 1240, 650);

        getContentPane().add(jifventanaInterna, "card2");

        jMenu1.setText("Archivo");
        jMenu1.setFont(new java.awt.Font("SansSerif", 1, 12));

        jMenuItem1.setFont(new java.awt.Font("SansSerif", 1, 12));
        jMenuItem1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/simplexml/imagenes/document_32.png"))); // NOI18N
        jMenuItem1.setText("Nuevo Proyecto");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem1);

        jMenuItem7.setFont(new java.awt.Font("SansSerif", 1, 12));
        jMenuItem7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/simplexml/imagenes/Generic-folder-32.png"))); // NOI18N
        jMenuItem7.setText("Abrir Proyecto");
        jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem7ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem7);

        jMenuItem2.setFont(new java.awt.Font("SansSerif", 1, 12));
        jMenuItem2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/simplexml/imagenes/save_32.png"))); // NOI18N
        jMenuItem2.setText("Guardar");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem2);

        jMenuItem3.setFont(new java.awt.Font("SansSerif", 1, 12));
        jMenuItem3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/simplexml/imagenes/DeleteRed.png"))); // NOI18N
        jMenuItem3.setText("Salir");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem3ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem3);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Ejecutar");
        jMenu2.setFont(new java.awt.Font("SansSerif", 1, 12));

        jMenuItem4.setFont(new java.awt.Font("SansSerif", 1, 12));
        jMenuItem4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/simplexml/imagenes/warning_32.png"))); // NOI18N
        jMenuItem4.setText("Detectar Errores");
        jMenu2.add(jMenuItem4);

        jMenuItem5.setFont(new java.awt.Font("SansSerif", 1, 12));
        jMenuItem5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/simplexml/imagenes/right_32.png"))); // NOI18N
        jMenuItem5.setText("Traducir");
        jMenu2.add(jMenuItem5);

        jMenuBar1.add(jMenu2);

        jMenu4.setText("Reportes");
        jMenu4.setFont(new java.awt.Font("SansSerif", 1, 12));

        jMenuItem6.setFont(new java.awt.Font("SansSerif", 1, 12));
        jMenuItem6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/simplexml/imagenes/visto.png"))); // NOI18N
        jMenuItem6.setText("Nuevo Reporte");
        jMenu4.add(jMenuItem6);

        jMenuBar1.add(jMenu4);

        jMenu3.setText("Ayuda");
        jMenu3.setFont(new java.awt.Font("SansSerif", 1, 12));
        jMenuBar1.add(jMenu3);

        setJMenuBar(jMenuBar1);

        pack();
    }// </editor-fold>//GEN-END:initComponents

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO add your handling code here:

    if (nombreArchivo == null && jtasimplexml.getText().length() == 0) {
        System.exit(0);
    } else {
        if (nombreArchivo == null) {
            if (jtasimplexml.getText().length() > 0) {
                String nombrearchivo = new Mensajes().nombreArchivo(this);
                new Archivos().guardar(nombrearchivo, jtasimplexml.getText());
                new Mensajes().guardadoSatisfactoriamente(this);
                List<Nodo> nodos = new ArrayList<Nodo>();
                Nodo n = new Nodo();
                n.setNombre_nodo("nulo");
                nodos.add(n);
                new Archivoxml().crearXML("1", "raiz", nodos, nombrearchivo);
            }
        } else {
            String nombrearchivo = nombreArchivo;
            new Archivos().guardar(nombrearchivo, jtasimplexml.getText());
            new Mensajes().actualizadoSatisfactoriamente(this);
            List<Nodo> nodos = new ArrayList<Nodo>();
            Nodo n = new Nodo();
            n.setNombre_nodo("nulo");
            nodos.add(n);
            new Archivoxml().crearXML("1", "raiz", nodos, nombrearchivo);
        }
    }

}//GEN-LAST:event_jButton2ActionPerformed

private void jtasimplexmlKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtasimplexmlKeyPressed
// TODO add your handling code here:
}//GEN-LAST:event_jtasimplexmlKeyPressed

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
// TODO add your handling code here:

    if (jtasimplexml.getText().length() == 0) {
        jifventanaInterna.dispose();
        this.dispose();
        Principal p = new Principal();
        p.setVisible(true);
        nombreArchivo = null;
    } else {
        if (nombreArchivo == null) {
            int num = new Mensajes().deseaguardar(this);
            if (num == 0) {
                //guardar            
                String nombrearchivo = new Mensajes().nombreArchivo(this);
                new Archivos().guardar(nombrearchivo, jtasimplexml.getText());
                new Mensajes().guardadoSatisfactoriamente(this);
                List<Nodo> nodos = new ArrayList<Nodo>();
                Nodo n = new Nodo();
                n.setNombre_nodo("nulo");
                nodos.add(n);
                new Archivoxml().crearXML("1", "raiz", nodos, nombrearchivo);
                jifventanaInterna.dispose();
                this.dispose();
                Principal p = new Principal();
                p.setVisible(true);
                nombreArchivo = null;
            } else if (num == 1) {
                //abre nueva ventana
                jifventanaInterna.dispose();
                this.dispose();
                Principal p = new Principal();
                p.setVisible(true);
                nombreArchivo = null;
            }
        } else {
            String nombrearchivo = nombreArchivo;
            new Archivos().guardar(nombrearchivo, jtasimplexml.getText());
            new Mensajes().actualizadoSatisfactoriamente(this);
            List<Nodo> nodos = new ArrayList<Nodo>();
            Nodo n = new Nodo();
            n.setNombre_nodo("nulo");
            nodos.add(n);
            new Archivoxml().crearXML("1", "raiz", nodos, nombrearchivo);
            jifventanaInterna.dispose();
            this.dispose();
            Principal p = new Principal();
            p.setVisible(true);
            nombreArchivo = null;
        }
    }
}//GEN-LAST:event_jMenuItem1ActionPerformed

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
// TODO add your handling code here:
    if (nombreArchivo == null) {
        if (jtasimplexml.getText().length() > 0) {
            String nombrearchivo = new Mensajes().nombreArchivo(this);
            new Archivos().guardar(nombrearchivo, jtasimplexml.getText());
            List<Nodo> nodos = new ArrayList<Nodo>();
            Nodo n = new Nodo();
            n.setNombre_nodo("nulo");
            nodos.add(n);
            new Archivoxml().crearXML("1", "raiz", nodos, nombrearchivo);
        } else {
            new Mensajes().StandarWarning(this, "Ingrese el codigo Simplexml para iniciar");
        }
    } else {
        String nombrearchivo = nombreArchivo;
        new Archivos().guardar(nombrearchivo, jtasimplexml.getText());
        new Mensajes().actualizadoSatisfactoriamente(this);
        List<Nodo> nodos = new ArrayList<Nodo>();
        Nodo n = new Nodo();
        n.setNombre_nodo("nulo");
        nodos.add(n);
        new Archivoxml().crearXML("1", "raiz", nodos, nombrearchivo);
    }

}//GEN-LAST:event_jMenuItem2ActionPerformed

private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem7ActionPerformed
// TODO add your handling code here:
    JFileChooser jfc = new JFileChooser();
    jfc.setDialogTitle("Seleccione el Archivo");
    jfc.setCurrentDirectory(new File("C:/Users/Usuario"));
    jfc.setAcceptAllFileFilterUsed(false);
    jfc.addChoosableFileFilter(new FiltroArchivo());
    int sel = jfc.showOpenDialog(null);
    if (sel == JFileChooser.APPROVE_OPTION) {
        String rutaOrigen = jfc.getSelectedFile().getAbsolutePath();
        nombreArchivo = jfc.getSelectedFile().getName();
        jifventanaInterna.setTitle(nombreArchivo);
        int numero = nombreArchivo.length();
        nombreArchivo = nombreArchivo.substring(0, numero - 4);
        String ruta = rutaOrigen;
        jtasimplexml.setText(new Archivos().recuperar(ruta));
    } else {
        JOptionPane.showMessageDialog(null, "Archivo no Seleccionado");
    }

}//GEN-LAST:event_jMenuItem7ActionPerformed

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
// TODO add your handling code here:
    if (nombreArchivo == null) {
        if (jtasimplexml.getText().length() > 0) {
            String nombrearchivo = new Mensajes().nombreArchivo(this);
            new Archivos().guardar(nombrearchivo, jtasimplexml.getText());
            new Mensajes().guardadoSatisfactoriamente(this);
            List<Nodo> nodos = new ArrayList<Nodo>();
            Nodo n = new Nodo();
            n.setNombre_nodo("nulo");
            nodos.add(n);
            new Archivoxml().crearXML("1", "raiz", nodos, nombrearchivo);
        }
    } else {
        String nombrearchivo = nombreArchivo;
        new Archivos().guardar(nombrearchivo, jtasimplexml.getText());
        new Mensajes().actualizadoSatisfactoriamente(this);
        List<Nodo> nodos = new ArrayList<Nodo>();
        Nodo n = new Nodo();
        n.setNombre_nodo("nulo");
        nodos.add(n);
        new Archivoxml().crearXML("1", "raiz", nodos, nombrearchivo);
    }
}//GEN-LAST:event_jButton4ActionPerformed

private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
// TODO add your handling code here:
    if (nombreArchivo == null && jtasimplexml.getText().length() == 0) {
        System.exit(0);
    } else {
        if (nombreArchivo == null) {
            if (jtasimplexml.getText().length() > 0) {
                String nombrearchivo = new Mensajes().nombreArchivo(this);
                new Archivos().guardar(nombrearchivo, jtasimplexml.getText());
                new Mensajes().guardadoSatisfactoriamente(this);
                List<Nodo> nodos = new ArrayList<Nodo>();
                Nodo n = new Nodo();
                n.setNombre_nodo("nulo");
                nodos.add(n);
                new Archivoxml().crearXML("1", "raiz", nodos, nombrearchivo);
            }
        } else {
            String nombrearchivo = nombreArchivo;
            new Archivos().guardar(nombrearchivo, jtasimplexml.getText());
            new Mensajes().actualizadoSatisfactoriamente(this);
            List<Nodo> nodos = new ArrayList<Nodo>();
            Nodo n = new Nodo();
            n.setNombre_nodo("nulo");
            nodos.add(n);
            new Archivoxml().crearXML("1", "raiz", nodos, nombrearchivo);
        }
    }
}//GEN-LAST:event_jMenuItem3ActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Principal().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenu jMenu4;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JMenuItem jMenuItem7;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTextArea jTextArea3;
    private javax.swing.JTextArea jTextArea4;
    private javax.swing.JInternalFrame jifventanaInterna;
    private javax.swing.JTextArea jtasimplexml;
    private javax.swing.JTextArea jtaxml;
    private org.edisoncor.gui.panel.PanelCurves panelCurves1;
    private org.edisoncor.gui.panel.PanelImage panelImage1;
    // End of variables declaration//GEN-END:variables
}
